package com.niodata.dp.monitor.sharelib.view.file;

import com.niodata.dp.monitor.sharelib.entity.file.AlertSetting;
import com.niodata.dp.monitor.sharelib.entity.file.FileMonitorItemType;
import com.niodata.dp.monitor.sharelib.entity.file.FileMonitorType;
import com.niodata.dp.monitor.sharelib.entity.file.SchedulingStrategy;
import com.niodata.dp.monitor.sharelib.entity.file.TimelyRateCheckPoint;
import com.niodata.dp.monitor.sharelib.entity.file.TimelyRateCheckType;
import java.util.Date;
import java.util.List;
import java.util.Map;

public class FileMonitorInfoView {

  private String id;
  //监控名称
  private String name;
  //数据源ID
  private String dsId;
  //需要监控的目录
  private String monitorDir;
  //监控类型
  private FileMonitorType type;
  //及时率检查时间点列表
  private List<TimelyRateCheckPoint> timelyRateCheckPoints;
  //监控项列表
  private Map<FileMonitorItemType, Map<String, Object>> monitorItems;
  //备注及描述信息
  private String description;
  //调度策略
  private SchedulingStrategy schedulingStrategy;
  //是否启用
  private boolean enabled = true;
  //告警配置
  private AlertSetting alertSetting;
  //及时率监控类型
  private TimelyRateCheckType timelyRateCheckType;

  private Long ownerId;
  private String ownerType = "GROUP";

  //创建时间
  private Date createTime;
  //更改时间
  private Date updateTime;

  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getDsId() {
    return dsId;
  }

  public void setDsId(String dsId) {
    this.dsId = dsId;
  }

  public String getMonitorDir() {
    return monitorDir;
  }

  public void setMonitorDir(String monitorDir) {
    this.monitorDir = monitorDir;
  }

  public FileMonitorType getType() {
    return type;
  }

  public void setType(FileMonitorType type) {
    this.type = type;
  }

  public List<TimelyRateCheckPoint> getTimelyRateCheckPoints() {
    return timelyRateCheckPoints;
  }

  public void setTimelyRateCheckPoints(
        List<TimelyRateCheckPoint> timelyRateCheckPoints) {
    this.timelyRateCheckPoints = timelyRateCheckPoints;
  }

  public Map<FileMonitorItemType, Map<String, Object>> getMonitorItems() {
    return monitorItems;
  }

  public void setMonitorItems(
        Map<FileMonitorItemType, Map<String, Object>> monitorItems) {
    this.monitorItems = monitorItems;
  }

  public String getDescription() {
    return description;
  }

  public void setDescription(String description) {
    this.description = description;
  }

  public SchedulingStrategy getSchedulingStrategy() {
    return schedulingStrategy;
  }

  public void setSchedulingStrategy(
        SchedulingStrategy schedulingStrategy) {
    this.schedulingStrategy = schedulingStrategy;
  }

  public boolean isEnabled() {
    return enabled;
  }

  public void setEnabled(boolean enabled) {
    this.enabled = enabled;
  }

  public AlertSetting getAlertSetting() {
    return alertSetting;
  }

  public void setAlertSetting(AlertSetting alertSetting) {
    this.alertSetting = alertSetting;
  }

  public TimelyRateCheckType getTimelyRateCheckType() {
    return timelyRateCheckType;
  }

  public void setTimelyRateCheckType(
        TimelyRateCheckType timelyRateCheckType) {
    this.timelyRateCheckType = timelyRateCheckType;
  }

  public Long getOwnerId() {
    return ownerId;
  }

  public void setOwnerId(Long ownerId) {
    this.ownerId = ownerId;
  }

  public String getOwnerType() {
    return ownerType;
  }

  public void setOwnerType(String ownerType) {
    this.ownerType = ownerType;
  }

  public Date getCreateTime() {
    return createTime;
  }

  public void setCreateTime(Date createTime) {
    this.createTime = createTime;
  }

  public Date getUpdateTime() {
    return updateTime;
  }

  public void setUpdateTime(Date updateTime) {
    this.updateTime = updateTime;
  }
}
